package com.yunxin.core.application.dto.product;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author zero°
 * @since 2023-05-31
 */
@Data
@Schema(description = "分页产品列表对象")
public class ProductPageDTO implements Serializable {

    /**
     * id
     */
    @Schema(description = "id")
    private Long id;
    /**
     * 产品名称
     */
    @Schema(description = "产品名称")
    private String productName;
    /**
     * 产品code
     */
    @Schema(description = "产品code")
    private String productCode;
    /**
     * 商户类型 1.个人 2.企业
     */
    @Schema(description = "商户类型 1.个人 2.企业")
    private Integer merchantType;
    /**
     * 商户id
     */
    @Schema(description = "商户id")
    private Long merchantId;
    /**
     * 商户名称
     */
    @Schema(description = "商户名称")
    private String merchantName;
    /**
     * 产品状态 0.下架 1.上架
     */
    @Schema(description = "产品状态 0.下架 1.上架")
    private Integer productStatus;
    /**
     * 产品状态
     */
    @Schema(description = "产品状态")
    private String productStatusStr;
    /**
     * 产品类型 1.信用贷 2.车抵贷 3.房抵贷 4.企业贷 5.商户贷
     */
    @Schema(description = "产品类型 1.信用贷 2.车抵贷 3.房抵贷 4.企业贷 5.商户贷")
    private Integer productType;
    /**
     * 产品类型
     */
    @Schema(description = "产品类型")
    private String productTypeStr;
    /**
     * 产品范围
     */
    @Schema(description = "产品范围")
    private String productRange;
    /**
     * 产品总限量
     */
    @Schema(hidden = true)
    private Integer totalLimit;
    /**
     * 当日进件/控量
     */
    @Schema(description = "当日进件/控量")
    private String productLimit;

    /**
     * 可借金额
     */
    @Schema(description = "可借金额")
    private String borrowableAmount;
    /**
     * 在线日期
     */
    @Schema(description = "在线日期")
    private String limitDay;
    /**
     * 权重
     */
    @Schema(description = "权重")
    private Integer weight;
    /**
     * 计费单价
     */
    @Schema(description = "计费单价")
    private BigDecimal chargedPrice;
    /**
     * 计费方式 1.uv 2.注册 3.表单
     */
    @Schema(description = "计费方式 1.uv 2.注册 3.表单")
    private Integer chargedWay;
    /**
     * 计费方式str
     */
    @Schema(description = "计费方式str")
    private String chargedWayStr;

    /**
     * 对接方式:对接方式 1.自营 2.h5 3.api 4.企业微信
     */
    @Schema(description = "对接方式")
    private Integer abutmentType;
    /**
     * 修改人
     */
    @Schema(description = "修改人")
    private String editor;
    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date editTime;

}
